package com.cyl.game.demos.web.entity;

import lombok.Data;

@Data
public class Result<T> {
    private int code; // 状态码，用于标识请求的处理结果状态，比如 200 表示成功，其他值表示不同类型的错误等
    private String message; // 提示消息，对结果状态的简要说明，方便前端展示给用户或者进行日志记录等
    private T data; // 实际的数据内容，可以是任意类型，比如查询用户信息时返回的用户对象列表，或者单个用户对象等

    // 私有化构造函数，通过静态方法来创建不同情况的 Result 实例
    private Result(int code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }
    public static <T> Result<T> success(T data) {
        return new Result<T>(200, "操作成功", data);
    }

    public static <T> Result<T> success(String message, T data) {
        return new Result<T>(200, message, data);
    }
    public static <T> Result<T> failure(int code, String message) {
        return new Result<T>(code, message, null);
    }

    public static <T> Result<T> failure(int code, String message, T data) {
        return new Result<T>(code, message, data);
    }
}